var goodsListUrl = "/ConsumerGoodsListServlet";
var unitListUrl = "/GetUnitListServlet";
var CateGoryListUrl = "/GetCategoryListServlet";
var updateGoodsUrl = "/UpdateGoodsServlet";
var updateStatusUrl = "/ChangeGoodsStstusServlet";

$(function () {
    // 初始化分页列表
    goodsManage.initList();
    //商品类别下拉列表
    goodsCateGory.initList();
    //商品单位下拉列表
    goodsUnit.initList();
})
var goodsManage = {};
var goodsCateGory = {};
var goodsUnit = {};

/**
 * 商品单位下拉框
 */
goodsUnit.initList = function(){
    $.ajax({
        url: unitListUrl,
        type: 'get',
        dataType: 'json',
        success: function (result) {
            if (result.status > 0){
                var res = result.data;
                for(var i=0;i<res.length;i++){
                    var opt = $("<option value='"+res[i].id+"'>"+res[i].name+"</option>");
                    $("#unitId").append(opt)
                }
            }
        }
    })
}

/**
 * 类别下拉框
 */
goodsCateGory.initList = function(){
    $.ajax({
        url: CateGoryListUrl,
        type: 'get',
        dataType: 'json',
        success: function (result) {
            if (result.status > 0 ) {
                var res = result.data;
                for (var i = 0; i < res.length; i++) {
                    var opt = $("<option value='" + res[i].id + "'>" + res[i].name + "</option>");
                    $("#categoryId").append(opt);
                }
            }
        }
    })
}

goodsManage.initList = function () {
    $("#goodsList").bootstrapTable({
        url:goodsListUrl,//请求路径 **********************************
        method: 'post', //请求方式(*)
        contentType: 'application/x-www-form-urlencoded', //使用from表单方式提交(*)
        toolbar: '#toolbar', //工具按钮的容器
        striped: true, //是否启用隔行变色
        cache: false, //使用是否缓存 默认为true,所以一般情况下需要设置一下为false (*)
        pagination: true, //是否显示分页(*)
        sortable: false, //使用启用排序
        sortOrder: 'desc', //排序方式
        queryParams: goodsManage.queryParams, //传递参数(*)  *************************************************
        queryParamsType: '',
        sidePagination: 'server', // 分页方式有两种 1.client 客户端分页  2.server分页
        pageNumber: 1, //初始化页数为第一页  显示第几页
        pageSize: 5, //默认每页加载行数
        pageList: [10, 25, 50, 100], //每页可选择记录数
        strictSearch: true,
        showColumns: false, // 是否显示所有的列
        showRefresh: false, // 是否显示刷新按钮
        minimumCountColumns: 2, // 最少允许的列数
        clickToSelect: true, // 是否启用点击选中行
        uniqueId: "id", // 每一行的唯一标识，一般为主键列
        showToggle: false, // 是否显示详细视图和列表视图的切换按钮
        cardView: false, // 是否显示详细视图
        detailView: false, // 是否显示父子表
        smartDisplay: false,
        responseHandler: function (result) {   // 通过网络请求得到   数据进行解析初始化*******************************
            console.log(result.data);
            if (result != null) {
                return {
                    'total': result.data.count, //总条数*************************************
                    'rows': result.data.list //所有的数据**********************************
                };
            }
            return {
                'total': 0, //总条数
                'rows': [] //所有的数据
            }
        },
        //列表显示
        columns: [{   // 配置显示的列表 ****************************
            field: 'id',
            title: "商品编号",
            visible: false
        }, {
            field: 'goodsId',
            title: "商品编号"
        }, {
            field: 'name',
            title: "商品名称"
        }, {
            field: 'code',
            title: "商品数量",
        }, {
            field: 'status',
            title: "状态",
            formatter: function (value) {
                switch (value) {
                    case 0 :
                        return '<button class="btn-xs btn-danger">下架</button>';
                    case 1 :
                        return '<button class="btn-xs btn-info">上架</button>';
                }
            }
        }, {
            field: 'type',
            title: "商品类型",
            formatter: function (value) {
                switch (value) {
                    case 0 :
                        return "服务商品";
                    case 1 :
                        return "普通商品";
                }
            }
        }, {
            field: 'unitName',
            title: "单位"
        }, {
            field: 'price',
            title: "价格"
        }, {
            field: 'operation',
            events: goodsManage.buttonOperateEvent, // 设置每一行按钮的 点击事件*********************************
            title: '操作',
            formatter: function (value, row, index) {  // 为当前行增加 按钮*******************
                return goodsManage.buttonOption(value, row, index);
            }
        }
        ]
    });
}

/**
 * 获取具体的参数
 */
goodsManage.queryParams = function (params) {
    return {
        "pageNumber": params.pageNumber, //当前页数
        "pageSize": params.pageSize, //每页条数
        "searchGoodsId": $("#searchGoodsId").val(),
        "searchName": $("#searchName").val()
    }
}

/**
 * 刷新列表
 */
goodsManage.search = function () {
    //bootstrapTable 刷新
    $("#goodsList").bootstrapTable('refresh');
}

/**
 * 为每一行添加按钮
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
goodsManage.buttonOption = function (value, row, index) {
    var returnButton = [];
    returnButton.push('<button class="btn btn-info updateGoods">修改</button>');
    returnButton.push('<button class="btn btn-danger delGoods">下架/上架</button>');
    return returnButton.join('');
}

/**
 * 按钮的点击事件
 */
goodsManage.buttonOperateEvent = {
    // 更新 员工 对应的 更新按钮的updateGoods
    'click .updateGoods': function (e, value, row, index) {
        //row 这一行的数据
        //alert(row.GoodsName);
        // 初始化更新的模态框  能不能 把我们  修改 员工的模态显示出来
        //1.初始模态框内的数据

        $("#goodsId").val(row.goodsId);
        $("#goodsName").val(row.name);
        $("#code").val(row.code);
        $("#type").val(row.type);
        $("#price").val(row.price);
        $("#categoryId option[value='1']").attr("selected","selected");
        $("#unitId option[value='1']").attr("selected","selected");
        //2.显示  在模态框的确定按钮添加 事件  使用ajax 将用户修改的数据 提交到后台
        $("#myModal").modal('show');


    },
    // 删除员工 更新按钮的delGoods
    'click .delGoods': function (e, value, row, index) {
        goodsManage.change(row);
    }
}

//修改商品的确认按钮
updateGoods = function () {
    $.ajax({
        url: updateGoodsUrl,// 自己完成后台
        type: 'get',
        data: {
            "goodsId": $("#goodsId").val(),
            "goodsName": $("#goodsName").val(),
            "code": $("#code").val(),
            "unitId": $("#unitId").val(),
            "type": $("#type").val(),
            "price": $("#price").val(),
            "categoryId": $("#categoryId").val()
        },
        dataType: 'json',
        success: function (result) {
            if (result.goodsId>0) {
                toastr['success']("操作成功");
                $("#myModal").modal('hide');
                $("#goodsList").bootstrapTable('refresh');
            } else {
                toastr['error']("操作失败");
            }
        }
    })
}

//上下架按钮的确认
goodsManage.change = function (row) {
    Modal.confirm({
        msg: "确认下架商品"  // 配置 确认窗口 ，也必须在html 设置窗口布局
    }).on(function (e) {
        if (e) {
            $.ajax({
                url: updateStatusUrl,
                type: 'post',
                data: {
                    "goodsId":row.goodsId,
                    "status": row.status
                },
                dataType: 'json',
                success: function (result) {
                    if (result.goodsId > 0) {
                        toastr['success']("操作成功");
                    } else {
                        toastr['error']("操作失败");
                    }
                    goodsManage.search();
                },error:function (result) {
                    toastr['error']("切换失败");
                }
            })

        }
    })
}



